package com.ruoyi.electricity.service;

import com.ruoyi.electricity.domain.vo.*;

import java.util.Date;
import java.util.List;

public interface ElectricityStatisticsService {
    List<RegionalElectricityConsumptionRanking> selectRegionalElectricityConsumptionRanking();

    List<ElectricityConsumptionAndOutputInTimeDimension> selectDailyElectricityConsumptionAndOutputForCurrentMonth();

    List<ElectricityTypePowerConsumption> selectPowerConsumptionOfEachElectricityType();

    List<ElectricityAlarmCountInTimeDimension> selectDailyElectricityAlarmForCurrentMonth();

    List<ElectricityAlarmLevelCount> selectNumberOfEachElectricityAlarmLevelForCurrentMonth();

    List<OnlineStatusCount> selectNumberOfEachOnlineStatusForCurrentDay();

    List<HiddenSateCountInTimeDimension> selectNumberOfEachHiddenSateForCurrentMonth();

    List<ElectricityDataVo> selectElectricityDataEveryMinuteOfTheDay(String equipCode, Date date);

    List<AlarmsHandleCountForTheDay> countEveryAlarmLevelForTheDay();

    List<EquipSecurityStatusCount> countEquipSecurityStatus();

    List<AlarmsHandleCountForEachHourOfTheDay> countAlarmsForEachHourOfTheDay();

    List<PAEnergyCountForTheDay> countPAEnergyForTheDay();


    List<PAEnergyForEveryDay> countPAEnergyForEveryDay(Date startTime, Date endTime, String equipCode);

    List<AlarmsCountForEveryDay> countAlarmsForEveryDay(Date startTime, Date endTime);

    List<AlarmCountForEachLevel> countAlarmForEachLevel(Date startTime, Date endTime);

    List<ALarmCountForEachEquip> countALarmForEachEquip(Date startTime, Date endTime);

    List<MaxAndAvgElectricityVo> selectMaxAndAvgElectricityOfTheDay(String equipCode);

    List<OpenStopOfflineCount> countOpenStopOffline();

    List<PAEnergyForEveryDay> countTotalElectricityConsumptionInSevenDays(Integer days);
}
